home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / filutil / mdf130.zip / MDFL130.ZIP / MDFL_ITA.DOC < prev    next >
Text File  |  1995-01-12  |  9KB  |  282 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                                        MDFLIB
  12.                                     Versione 1.3
  13.  
  14.                              (C) 1994/95 Maurizio Giunti
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.      Libreria C/C++ o  Visual Basic che  consente di applicare  i files  *.MDF
  24.      creati con  versioni  REGISTRATE di  MDIFF/MDIFF2.  Versioni Dos  e  OS/2
  25.      32bit. MDFLIB  e'  liberamente  utilizzabile e  non  e'  richiesto  alcun
  26.      compenso o royalty. Chiunque puo'  redistribuire MDFLIB a condizione  che
  27.      non richieda alcuna  somma di denaro  in cambio, fatta  eccezione per  le
  28.      spese  di  copia  e/o  distribuzione  che  devono   essere  adeguatamente
  29.      documentate.
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.                                      ATTENZIONE:
  41.        Le librerie fornite funzionano solo con files *.MDF prodotti con copie
  42.                            REGISTRATE di MDIFF o  MDIFF2.
  43.  
  44.  
  45.  
  46.  
  47.  
  48.      0.INDICE
  49.  
  50.  
  51.      0.INDICE                                                                 2
  52.  
  53.  
  54.      1.CONDIZIONI D'USO                                                       3
  55.  
  56.  
  57.      2.C++                                                                    3
  58.  
  59.        2.1.LA CLASSE MPATCH                                                   3
  60.  
  61.        2.2.TAVOLA DEGLI ERRORI                                                3
  62.  
  63.        2.3.LETTURA DELL'HEADER                                                4
  64.  
  65.  
  66.      3.C                                                                      4
  67.  
  68.        3.1 LETTURA DELL'HEADER                                                4
  69.  
  70.        3.2.APPLICARE IL FILE                                                  5
  71.  
  72.  
  73.      4.VISUAL BASIC                                                           5
  74.  
  75.  
  76.      5.INDIRIZZO DELL'AUTORE                                                  5
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.                                                                               2
  103.  
  104.  
  105.  
  106.  
  107.  
  108.      1.CONDIZIONI D'USO
  109.      Le librerie  contenute in  questo pacchetto  sono pienamente  funzionanti
  110.      soltanto su file *.MDF prodotti con   una copia REGISTRATA di MDIFF,  per
  111.      questo essi sono liberamente utilizzabili, inoltre il file  MDFDLL.DLL e'
  112.      liberamente distribuibile anche inserito in un vostro programma.
  113.      Nessun compenso  e' richiesto,  queste librerie  sono totalmente  royalty
  114.      free.
  115.  
  116.  
  117.  
  118.      2.C++
  119.  
  120.      2.1.LA CLASSE MPATCH
  121.      Per utilizzare la  classe MPatch non  e' necessario sapere  come opera  o
  122.      cosa contiene,  e'  sufficiente  capire    come  operano  i  suoi  membri
  123.      pubblici.
  124.  
  125.      MPatch()
  126.      E'  il  constructor,  inizializza  i   dati  privati.  Non  deve   essere
  127.      modificato.
  128.  
  129.      void SetRate(short r)
  130.      Cambia il rating di chiamata del metodo Show(). Vedi piu' avanti.
  131.  
  132.      short MDFPatch(char *dif, char *old, char *new)
  133.      E' la  funzione chiave,  prende come  parametri  i nomi  dei 3  files  da
  134.      trattare: il file di differenza, il file di  partenza e il  nome del file
  135.      da produrre. Attenzione: old e new non devono puntare a  stringhe uguali.
  136.      Se  old o new contengono  stringhe nulle ("\0") i nomi dei  files vengono
  137.      presi dal file di differenza. La  funzione ritorna 0 se tutto e' andato a
  138.      buon fine o un intero positivo in caso di errore.
  139.  
  140.      char *LastError()
  141.      Se si e' verificato un errore nell'uso di MDFPatch(), LastError() ritorna
  142.      un puntatore ad una stringa che  spiega l'errore che si e' verificato.
  143.  
  144.      void Show_start()
  145.      void Show()
  146.      void Show_end()
  147.      Queste tre  funzioni vengono  utilizzate  per visualizzare  dei  messaggi
  148.      durante l'applicazione della patch. La  Show_start() viene richiamata nel
  149.      momento in cui la MDFPatch(), ultimati i controlli dei files su  cui deve
  150.      lavorare, inizia ad applicare la patch. La Show_end() viene richiamata al
  151.      termine dell'operazione,  mentre  la   Show()  viene  richiamata  durante
  152.      l'esecuzione dell'operazione.  Le volte  in cui  Show() viene  richiamata
  153.      dipendono dal valore settato  dalla funzione SetRate().Queste 3  funzioni
  154.      sono virtuali, quindi, per  poterle adattare, e' necessario  ereditare la
  155.      classe. Vedi anche SAMPLE.CPP.
  156.  
  157.  
  158.      2.2.TAVOLA DEGLI ERRORI
  159.      Ecco i codici di  errore che puo' ritornare  la funzione MDFPatch() e  le
  160.      stringhe corrispondentemente  riportate dalla LastError()  (le virgolette
  161.      sono ovviamente escluse):
  162.                                                                               3
  163.  
  164.  
  165.  
  166.  
  167.  
  168.         Codice    Descrizione
  169.            0      "OK!"
  170.                   "Out of memory !"           1
  171.            2      "Can't open MDF file !"
  172.                   "Invalid MDF file !"           3
  173.                   "MDF file version mismatch !"           4
  174.                   "UNREGISTERED !"           5
  175.            6      "Bad or incorrect OLD file !"
  176.                   "Can't open OLD file !"           7
  177.                   "Can't create NEW file !"           8
  178.                   "General failure: NEW file corrupted !"           9
  179.                   "OLD and NEW can't be the same file !"          10
  180.  
  181.  
  182.  
  183.      2.3.LETTURA DELL'HEADER
  184.      La funzione di lettura  dell'header ha lo stesso  funzionamento sia in  C
  185.      che in C++, quindi sara' spiegata nel  paragrafo 3.1.
  186.  
  187.  
  188.      3.C
  189.  
  190.      3.1 LETTURA DELL'HEADER
  191.      Ogni file  *.MDF contiene  un header  nel quale  sono memorizzate  alcune
  192.      informazioni fondamentali. Tali   informazioni sono leggibili tramite  la
  193.      funzione readMDFhead():
  194.  
  195.      short readMDFhead(char *fn, struct MDF_header_info *hi)
  196.      Il parametro fn e' un puntatore alla stringa che contiene il nome  e path
  197.      completo del file  *.MDF da   esplorare, mentre hi  e' un puntatore  alla
  198.      struttura che conterra' i dati letti. Tale struttura e' cosi'  definita:
  199.  
  200.      struct MDF_header_info   {
  201.           char alg_ver[4];
  202.           char oldfilename[255];
  203.           char newfilename[255];
  204.           char registeredto[255];
  205.           char comment[2048];
  206.           unsigned long oldfilecrc;
  207.           short chunk_len;
  208.           unsigned long n_chunks;
  209.      };
  210.  
  211.      Se la chiamata alla funzione ha esito positivo i campi conterranno:
  212.      alg_ver          Versione  dell'algoritmo  utilizzato  per  creare  il
  213.                       file *.MDF
  214.      oldfilename      Nome originale del file OLD
  215.      newfilename      Nome originale del file NEW
  216.      registeredto     Nome  del  proprietario  della  copia  registrata  di
  217.                       MDIFF con il quale e' stato prodotto il file *.MDF
  218.      comment          Commento
  219.      oldfilecrc       Crc del file OLD
  220.      chunk_len        Lunghezza del chunk
  221.      n_chunks         Numero di chunks
  222.                                                                               4
  223.  
  224.  
  225.  
  226.  
  227.  
  228.      La funzione ritorna:
  229.          0     MDF File non trovato
  230.          1     OK
  231.          -1    Il file indicato non e' un file di MDIFF
  232.          -2    Il file  indicato  non  e'  stato  prodotto  con  la giusta
  233.                release di MDIFF
  234.  
  235.  
  236.      3.2.APPLICARE IL FILE
  237.      Il file *.MDF si applica semplicemente chiamando la funzione MDFPatch():
  238.  
  239.      short MDFPatch(char *mfl,char *ofl,char *nfl)
  240.      I parametri sono nell'ordine i nomi del file MDF del file OLD  e del file
  241.      NEW da creare.
  242.      I valori di  ritorno della  funzione possono  essere interpretati  grazie
  243.      alla tabella del capitolo 3.2, inoltre   frazie alla funzione  MDFError()
  244.      e'  possibile  ricevere  un  puntatore  ad  una  stringa  di  spiegazione
  245.      dell'errore:
  246.  
  247.      char *MDFError(short e)
  248.      L'unico parametro richiesto e' il numero dell'errore.
  249.  
  250.  
  251.      4.VISUAL BASIC
  252.      La DLL per  Windows fornita  e' richiamabile con  semplicita' dal  Visual
  253.      Basic: e' necessario  in primo luogo   dichiarare l'uso  della DLL in  un
  254.      modulo di dichiarazione globale con una espressione del tipo:
  255.  
  256.       Declare Function MPATCH Lib "mdfdll.dll" Alias "@MPATCH$qnzct1t1" (ByVal
  257.            m As String, ByVal o As  String, ByVal n As String) As Integer
  258.  
  259.      Successivamente sara' possibile lanciare la funzione in conseguenza di un
  260.      determinato evento:
  261.                           r% = MPATCH(fmdf$, fold$, fnew$)
  262.      Dove i parametri contengono rispettivamente il  nome del file *.mdf,  del
  263.      file OLD e del  file NEW. Il valore  di ritorno puo' essere  interpretato
  264.      tramite la tabella del capitolo 2.2.
  265.      Attenzione: la  dll MDFDLL.DLL  deve trovarsi  nel  path o  nella  stessa
  266.      directory in cui si trova il  programma eseguibile!
  267.  
  268.  
  269.      5.INDIRIZZO DELL'AUTORE
  270.      Per qualsiasi dubbio o perplessita', contattatemi:
  271.  
  272.                                    Maurizio Giunti
  273.                                 Via G.B. Foggini, 24
  274.                                     50142 Firenze
  275.                                         Italy
  276.  
  277.  
  278.                                        E-Mail:
  279.                                 Fidonet: 2:332/102.3
  280.                           Internet: giunti@stat.ds.unifi.it
  281.  
  282.                                                                               5